import { MainName } from '../../../../lib/core/service/util/global';

export const languageMap = {
    'af': [
        'af-ZA',
        'af-NA',
    ],
    'agq': [
        'agq-CM',
        'agq',
    ],
    'ak': [
        'ak-GH',
        'ak',
    ],
    'am': [
        'am-ET',
        'am',
    ],
    'ar': [
        'ar-YE',
        'ar-TN',
        'ar-TD',
        'ar-SY',
        'ar-SS',
        'ar-SO',
        'ar-SD',
        'ar-SA',
        'ar-QA',
        'ar-PS',
        'ar-OM',
        'ar-MR',
        'ar-MA',
        'ar-LY',
        'ar-LB',
        'ar-KW',
        'ar-KM',
        'ar-JO',
        'ar-IQ',
        'ar-IL',
        'ar-ER',
        'ar-EH',
        'ar-EG',
        'ar-DZ',
        'ar-DJ',
        'ar-BH',
        'ar-AE',
        'ar-001',
        'ar',
    ],
    'as': [
        'as-IN',
        'as',
    ],
    'asa': [
        'asa-TZ',
        'asa',
    ],
    'ast': [
        'ast-ES',
        'ast',
    ],
    'az': [
        'az-Latn-AZ',
        'az-Latn',
        'az-Cyrl-AZ',
        'az-Cyrl',
        'az',
    ],
    'bas': [
        'bas-CM',
        'bas',
    ],
    'be': [
        'be-TARASK',
        'be-BY',
        'be',
    ],
    'bem': [
        'bem-ZM',
        'bem',
    ],
    'bez': [
        'bez-TZ',
        'bez',
    ],
    'bg': [
        'bg-BG',
        'bg',
    ],
    'bm': [
        'bm-ML',
        'bm',
    ],
    'bn': [
        'bn-IN',
        'bn-BD',
        'bn',
    ],
    'br': [
        'br-FR',
        'br',
    ],
    'brx': [
        'brx-IN',
        'brx',
    ],
    'bs': [
        'bs-Latn-BA',
        'bs-Latn',
        'bs-Cyrl-BA',
        'bs-Cyrl',
        'bs',
    ],
    'ca': [
        'ca-IT',
        'ca-FR',
        'ca-ES-VALENCIA',
        'ca-ES',
        'ca-AD',
        'ca',
    ],
    'ccp': [
        'ccp-IN',
        'ccp-BD',
        'ccp',
    ],
    'ce': [
        'ce-RU',
        'ce',
    ],
    'ceb': [
        'ceb-PH',
        'ceb',
    ],
    'cgg': [
        'cgg-UG',
        'cgg',
    ],
    'chr': [
        'chr-US',
        'chr',
    ],
    'ckb': [
        'ckb-IR',
        'ckb-IQ',
        'ckb',
    ],
    'cs': [
        'cs-CZ',
        'cs',
    ],
    'cy': [
        'cy-GB',
        'cy',
    ],
    'da': [
        'da-GL',
        'da-DK',
        'da',
    ],
    'dav': [
        'dav-KE',
        'dav',
    ],
    'de': [
        'de-LU',
        'de-LI',
        'de-IT',
        'de-DE',
        'de-CH',
        'de-BE',
        'de-AT',
        'de',
    ],
    'dje': [
        'dje-NE',
        'dje',
    ],
    'doi': [
        'doi-IN',
        'doi',
    ],
    'dsb': [
        'dsb-DE',
        'dsb',
    ],
    'dua': [
        'dua-CM',
        'dua',
    ],
    'dyo': [
        'dyo-SN',
        'dyo',
    ],
    'dz': [
        'dz-BT',
        'dz',
    ],
    'ebu': [
        'ebu-KE',
        'ebu',
    ],
    'ee': [
        'ee-TG',
        'ee-GH',
        'ee',
    ],
    'el': [
        'el-GR',
        'el-CY',
        'el',
    ],
    'en': [
        'en-ZW',
        'en-ZM',
        'en-ZA',
        'en-WS',
        'en-VU',
        'en-VI',
        'en-VG',
        'en-VC',
        'en-US-POSIX',
        'en-US',
        'en-UM',
        'en-UG',
        'en-TZ',
        'en-TV',
        'en-TT',
        'en-TO',
        'en-TK',
        'en-TC',
        'en-SZ',
        'en-SX',
        'en-SS',
        'en-SL',
        'en-SI',
        'en-SH',
        'en-SG',
        'en-SE',
        'en-SD',
        'en-SC',
        'en-SB',
        'en-RW',
        'en-PW',
        'en-PR',
        'en-PN',
        'en-PK',
        'en-PH',
        'en-PG',
        'en-NZ',
        'en-NU',
        'en-NR',
        'en-NL',
        'en-NG',
        'en-NF',
        'en-NA',
        'en-MY',
        'en-MW',
        'en-MV',
        'en-MU',
        'en-MT',
        'en-MS',
        'en-MP',
        'en-MO',
        'en-MH',
        'en-MG',
        'en-LS',
        'en-LR',
        'en-LC',
        'en-KY',
        'en-KN',
        'en-KI',
        'en-KE',
        'en-JM',
        'en-JE',
        'en-IO',
        'en-IN',
        'en-IM',
        'en-IL',
        'en-IE',
        'en-HK',
        'en-GY',
        'en-GU',
        'en-GM',
        'en-GI',
        'en-GH',
        'en-GG',
        'en-GD',
        'en-GB',
        'en-FM',
        'en-FK',
        'en-FJ',
        'en-FI',
        'en-ER',
        'en-DM',
        'en-DK',
        'en-DG',
        'en-DE',
        'en-CY',
        'en-CX',
        'en-CM',
        'en-CK',
        'en-CH',
        'en-CC',
        'en-CA',
        'en-BZ',
        'en-BW',
        'en-BS',
        'en-BM',
        'en-BI',
        'en-BE',
        'en-BB',
        'en-AU',
        'en-AT',
        'en-AS',
        'en-AI',
        'en-AG',
        'en-AE',
        'en-150',
        'en-001',
        'en',
    ],
    'eo': [
        'eo-001',
        'eo',
    ],
    'es': [
        'es-VE',
        'es-UY',
        'es-US',
        'es-SV',
        'es-PY',
        'es-PR',
        'es-PH',
        'es-PE',
        'es-PA',
        'es-NI',
        'es-MX',
        'es-IC',
        'es-HN',
        'es-GT',
        'es-GQ',
        'es-ES',
        'es-EC',
        'es-EA',
        'es-DO',
        'es-CU',
        'es-CR',
        'es-CO',
        'es-CL',
        'es-BZ',
        'es-BR',
        'es-BO',
        'es-AR',
        'es-419',
        'es',
    ],
    'et': [
        'et-EE',
        'et',
    ],
    'eu': [
        'eu-ES',
        'eu',
    ],
    'ewo': [
        'ewo-CM',
        'ewo',
    ],
    'fa': [
        'fa-IR',
        'fa-AF',
        'fa',
    ],
    'ff': [
        'ff-Latn-SN',
        'ff-Latn-SL',
        'ff-Latn-NG',
        'ff-Latn-NE',
        'ff-Latn-MR',
        'ff-Latn-LR',
        'ff-Latn-GW',
        'ff-Latn-GN',
        'ff-Latn-GM',
        'ff-Latn-GH',
        'ff-Latn-CM',
        'ff-Latn-BF',
        'ff-Latn',
        'ff-Adlm-SN',
        'ff-Adlm-SL',
        'ff-Adlm-NG',
        'ff-Adlm-NE',
        'ff-Adlm-MR',
        'ff-Adlm-LR',
        'ff-Adlm-GW',
        'ff-Adlm-GN',
        'ff-Adlm-GM',
        'ff-Adlm-GH',
        'ff-Adlm-CM',
        'ff-Adlm-BF',
        'ff-Adlm',
        'ff',
    ],
    'fi': [
        'fi-FI',
        'fi',
    ],
    'fil': [
        'fil-PH',
        'fil',
    ],
    'fo': [
        'fo-FO',
        'fo-DK',
        'fo',
    ],
    'fr': [
        'fr-YT',
        'fr-WF',
        'fr-VU',
        'fr-TN',
        'fr-TG',
        'fr-TD',
        'fr-SY',
        'fr-SN',
        'fr-SC',
        'fr-RW',
        'fr-RE',
        'fr-PM',
        'fr-PF',
        'fr-NE',
        'fr-NC',
        'fr-MU',
        'fr-MR',
        'fr-MQ',
        'fr-ML',
        'fr-MG',
        'fr-MF',
        'fr-MC',
        'fr-MA',
        'fr-LU',
        'fr-KM',
        'fr-HT',
        'fr-GQ',
        'fr-GP',
        'fr-GN',
        'fr-GF',
        'fr-GA',
        'fr-FR',
        'fr-DZ',
        'fr-DJ',
        'fr-CM',
        'fr-CI',
        'fr-CH',
        'fr-CG',
        'fr-CF',
        'fr-CD',
        'fr-CA',
        'fr-BL',
        'fr-BJ',
        'fr-BI',
        'fr-BF',
        'fr-BE',
        'fr',
    ],
    'fur': [
        'fur-IT',
        'fur',
    ],
    'fy': [
        'fy-NL',
        'fy',
    ],
    'ga': [
        'ga-IE',
        'ga-GB',
        'ga',
    ],
    'gd': [
        'gd-GB',
        'gd',
    ],
    'gl': [
        'gl-ES',
        'gl',
    ],
    'gsw': [
        'gsw-LI',
        'gsw-FR',
        'gsw-CH',
        'gsw',
    ],
    'gu': [
        'gu-IN',
        'gu',
    ],
    'guz': [
        'guz-KE',
        'guz',
    ],
    'gv': [
        'gv-IM',
        'gv',
    ],
    'ha': [
        'ha-NG',
        'ha-NE',
        'ha-GH',
        'ha',
    ],
    'haw': [
        'haw-US',
        'haw',
    ],
    'he': [
        'he-IL',
        'he',
    ],
    'hi': [
        'hi-Latn-IN',
        'hi-Latn',
        'hi-IN',
        'hi',
    ],
    'hr': [
        'hr-HR',
        'hr-BA',
        'hr',
    ],
    'hsb': [
        'hsb-DE',
        'hsb',
    ],
    'hu': [
        'hu-HU',
        'hu',
    ],
    'hy': [
        'hy-AM',
        'hy',
    ],
    'ia': [
        'ia-001',
        'ia',
    ],
    'id': [
        'id-ID',
        'id',
    ],
    'ig': [
        'ig-NG',
        'ig',
    ],
    'is': [
        'is-IS',
        'is',
    ],
    'it': [
        'it-VA',
        'it-SM',
        'it-IT',
        'it-CH',
        'it',
    ],
    'ja': [
        'ja-JP',
        'ja',
    ],
    'jgo': [
        'jgo-CM',
        'jgo',
    ],
    'jmc': [
        'jmc-TZ',
        'jmc',
    ],
    'jv': [
        'jv-ID',
        'jv',
    ],
    'ka': [
        'ka-GE',
        'ka',
    ],
    'kab': [
        'kab-DZ',
        'kab',
    ],
    'kam': [
        'kam-KE',
        'kam',
    ],
    'kde': [
        'kde-TZ',
        'kde',
    ],
    'kea': [
        'kea-CV',
        'kea',
    ],
    'kgp': [
        'kgp-BR',
        'kgp',
    ],
    'khq': [
        'khq-ML',
        'khq',
    ],
    'ki': [
        'ki-KE',
        'ki',
    ],
    'kk': [
        'kk-KZ',
        'kk',
    ],
    'kkj': [
        'kkj-CM',
        'kkj',
    ],
    'kl': [
        'kl-GL',
        'kl',
    ],
    'kln': [
        'kln-KE',
        'kln',
    ],
    'km': [
        'km-KH',
        'km',
    ],
    'kn': [
        'kn-IN',
        'kn',
    ],
    'ko': [
        'ko-KR',
        'ko-KP',
        'ko',
    ],
    'kok': [
        'kok-IN',
        'kok',
    ],
    'ks': [
        'ks-Deva-IN',
        'ks-Deva',
        'ks-Arab-IN',
        'ks-Arab',
        'ks',
    ],
    'ksb': [
        'ksb-TZ',
        'ksb',
    ],
    'ksf': [
        'ksf-CM',
        'ksf',
    ],
    'ksh': [
        'ksh-DE',
        'ksh',
    ],
    'ku': [
        'ku-TR',
        'ku',
    ],
    'kw': [
        'kw-GB',
        'kw',
    ],
    'ky': [
        'ky-KG',
        'ky',
    ],
    'lag': [
        'lag-TZ',
        'lag',
    ],
    'lb': [
        'lb-LU',
        'lb',
    ],
    'lg': [
        'lg-UG',
        'lg',
    ],
    'lkt': [
        'lkt-US',
        'lkt',
    ],
    'ln': [
        'ln-CG',
        'ln-CF',
        'ln-CD',
        'ln-AO',
        'ln',
    ],
    'lo': [
        'lo-LA',
        'lo',
    ],
    'lrc': [
        'lrc-IR',
        'lrc-IQ',
        'lrc',
    ],
    'lt': [
        'lt-LT',
        'lt',
    ],
    'lu': [
        'lu-CD',
        'lu',
    ],
    'luo': [
        'luo-KE',
        'luo',
    ],
    'luy': [
        'luy-KE',
        'luy',
    ],
    'lv': [
        'lv-LV',
        'lv',
    ],
    'mai': [
        'mai-IN',
        'mai',
    ],
    'mas': [
        'mas-TZ',
        'mas-KE',
        'mas',
    ],
    'mer': [
        'mer-KE',
        'mer',
    ],
    'mfe': [
        'mfe-MU',
        'mfe',
    ],
    'mg': [
        'mg-MG',
        'mg',
    ],
    'mgh': [
        'mgh-MZ',
        'mgh',
    ],
    'mgo': [
        'mgo-CM',
        'mgo',
    ],
    'mi': [
        'mi-NZ',
        'mi',
    ],
    'mk': [
        'mk-MK',
        'mk',
    ],
    'ml': [
        'ml-IN',
        'ml',
    ],
    'mn': [
        'mn-MN',
        'mn',
    ],
    'mni': [
        'mni-Beng-IN',
        'mni-Beng',
        'mni',
    ],
    'mr': [
        'mr-IN',
        'mr',
    ],
    'ms': [
        'ms-SG',
        'ms-MY',
        'ms-ID',
        'ms-BN',
        'ms',
    ],
    'mt': [
        'mt-MT',
        'mt',
    ],
    'mua': [
        'mua-CM',
        'mua',
    ],
    'my': [
        'my-MM',
        'my',
    ],
    'mzn': [
        'mzn-IR',
        'mzn',
    ],
    'naq': [
        'naq-NA',
        'naq',
    ],
    'nb': [
        'nb-SJ',
        'nb-NO',
        'nb',
    ],
    'nd': [
        'nd-ZW',
        'nd',
    ],
    'nds': [
        'nds-NL',
        'nds-DE',
        'nds',
    ],
    'ne': [
        'ne-NP',
        'ne-IN',
        'ne',
    ],
    'nl': [
        'nl-SX',
        'nl-SR',
        'nl-NL',
        'nl-CW',
        'nl-BQ',
        'nl-BE',
        'nl-AW',
        'nl',
    ],
    'nmg': [
        'nmg-CM',
        'nmg',
    ],
    'nn': [
        'nn-NO',
        'nn',
    ],
    'nnh': [
        'nnh-CM',
        'nnh',
    ],
    'no': [
        'no',
    ],
    'nus': [
        'nus-SS',
        'nus',
    ],
    'nyn': [
        'nyn-UG',
        'nyn',
    ],
    'om': [
        'om-KE',
        'om-ET',
        'om',
    ],
    'or': [
        'or-IN',
        'or',
    ],
    'os': [
        'os-RU',
        'os-GE',
        'os',
    ],
    'pa': [
        'pa-Guru-IN',
        'pa-Guru',
        'pa-Arab-PK',
        'pa-Arab',
        'pa',
    ],
    'pcm': [
        'pcm-NG',
        'pcm',
    ],
    'pl': [
        'pl-PL',
        'pl',
    ],
    'ps': [
        'ps-PK',
        'ps-AF',
        'ps',
    ],
    'pt': [
        'pt-TL',
        'pt-ST',
        'pt-PT',
        'pt-MZ',
        'pt-MO',
        'pt-LU',
        'pt-GW',
        'pt-GQ',
        'pt-CV',
        'pt-CH',
        'pt-BR',
        'pt-AO',
        'pt',
    ],
    'qu': [
        'qu-PE',
        'qu-EC',
        'qu-BO',
        'qu',
    ],
    'rm': [
        'rm-CH',
        'rm',
    ],
    'rn': [
        'rn-BI',
        'rn',
    ],
    'ro': [
        'ro-RO',
        'ro-MD',
        'ro',
    ],
    'rof': [
        'rof-TZ',
        'rof',
    ],
    'ru': [
        'ru-UA',
        'ru-RU',
        'ru-MD',
        'ru-KZ',
        'ru-KG',
        'ru-BY',
        'ru',
    ],
    'rw': [
        'rw-RW',
        'rw',
    ],
    'rwk': [
        'rwk-TZ',
        'rwk',
    ],
    'sa': [
        'sa-IN',
        'sa',
    ],
    'sah': [
        'sah-RU',
        'sah',
    ],
    'saq': [
        'saq-KE',
        'saq',
    ],
    'sat': [
        'sat-Olck-IN',
        'sat-Olck',
        'sat',
    ],
    'sbp': [
        'sbp-TZ',
        'sbp',
    ],
    'sc': [
        'sc-IT',
        'sc',
    ],
    'sd': [
        'sd-Deva-IN',
        'sd-Deva',
        'sd-Arab-PK',
        'sd-Arab',
        'sd',
    ],
    'se': [
        'se-SE',
        'se-NO',
        'se-FI',
        'se',
    ],
    'seh': [
        'seh-MZ',
        'seh',
    ],
    'ses': [
        'ses-ML',
        'ses',
    ],
    'sg': [
        'sg-CF',
        'sg',
    ],
    'shi': [
        'shi-Tfng-MA',
        'shi-Tfng',
        'shi-Latn-MA',
        'shi-Latn',
        'shi',
    ],
    'si': [
        'si-LK',
        'si',
    ],
    'sk': [
        'sk-SK',
        'sk',
    ],
    'sl': [
        'sl-SI',
        'sl',
    ],
    'smn': [
        'smn-FI',
        'smn',
    ],
    'sn': [
        'sn-ZW',
        'sn',
    ],
    'so': [
        'so-SO',
        'so-KE',
        'so-ET',
        'so-DJ',
        'so',
    ],
    'sq': [
        'sq-XK',
        'sq-MK',
        'sq-AL',
        'sq',
    ],
    'sr': [
        'sr-Latn-XK',
        'sr-Latn-RS',
        'sr-Latn-ME',
        'sr-Latn-BA',
        'sr-Latn',
        'sr-Cyrl-XK',
        'sr-Cyrl-RS',
        'sr-Cyrl-ME',
        'sr-Cyrl-BA',
        'sr-Cyrl',
        'sr',
    ],
    'su': [
        'su-Latn-ID',
        'su-Latn',
        'su',
    ],
    'sv': [
        'sv-SE',
        'sv-FI',
        'sv-AX',
        'sv',
    ],
    'sw': [
        'sw-UG',
        'sw-TZ',
        'sw-KE',
        'sw-CD',
        'sw',
    ],
    'ta': [
        'ta-SG',
        'ta-MY',
        'ta-LK',
        'ta-IN',
        'ta',
    ],
    'te': [
        'te-IN',
        'te',
    ],
    'teo': [
        'teo-UG',
        'teo-KE',
        'teo',
    ],
    'tg': [
        'tg-TJ',
        'tg',
    ],
    'th': [
        'th-TH',
        'th',
    ],
    'ti': [
        'ti-ET',
        'ti-ER',
        'ti',
    ],
    'tk': [
        'tk-TM',
        'tk',
    ],
    'to': [
        'to-TO',
        'to',
    ],
    'tr': [
        'tr-TR',
        'tr-CY',
        'tr',
    ],
    'tt': [
        'tt-RU',
        'tt',
    ],
    'twq': [
        'twq-NE',
        'twq',
    ],
    'tzm': [
        'tzm-MA',
        'tzm',
    ],
    'ug': [
        'ug-CN',
        'ug',
    ],
    'uk': [
        'uk-UA',
        'uk',
    ],
    'ur': [
        'ur-PK',
        'ur-IN',
        'ur',
    ],
    'uz': [
        'uz-Latn-UZ',
        'uz-Latn',
        'uz-Cyrl-UZ',
        'uz-Cyrl',
        'uz-Arab-AF',
        'uz-Arab',
        'uz',
    ],
    'vai': [
        'vai-Vaii-LR',
        'vai-Vaii',
        'vai-Latn-LR',
        'vai-Latn',
        'vai',
    ],
    'vi': [
        'vi-VN',
        'vi',
    ],
    'vun': [
        'vun-TZ',
        'vun',
    ],
    'wae': [
        'wae-CH',
        'wae',
    ],
    'wo': [
        'wo-SN',
        'wo',
    ],
    'xh': [
        'xh-ZA',
        'xh',
    ],
    'xog': [
        'xog-UG',
        'xog',
    ],
    'yav': [
        'yav-CM',
        'yav',
    ],
    'yi': [
        'yi-001',
        'yi',
    ],
    'yo': [
        'yo-NG',
        'yo-BJ',
        'yo',
    ],
    'yrl': [
        'yrl-VE',
        'yrl-CO',
        'yrl-BR',
        'yrl',
    ],
    'zgh': [
        'zgh-MA',
        'zgh',
    ],
    'zh': [
        'zh-Hans-CN',
        'zh-Hans-HK',
        'zh-Hans-MO',
        'zh-Hans-SG',
        'zh-Hans',
        'zh-Hant-TW',
        'zh-Hant-MO',
        'zh-Hant-HK',
        'zh-Hant',
        'zh',
    ],
    'zu': [
        'zu-ZA',
        'zu',
    ],
};

/**
 *
 * @param code
 * @param fallback default is code
 * @returns
 */
export function getLanguageDisplayName(code: Intl.BCP47LanguageTag, fallback: 'none' |'code' = 'code'): string{
    const result = Editor.I18n.t(`${MainName}.language_code.${code}`);
    if (!result && fallback === 'none'){
        return result;
    }
    return result || code;
}
